package StuDemo.LinkedList;


import java.awt.*;

/**
 * @Author：DijaH
 * @Date：2023/4/5 7:52 下午
 * @Version：1.0.0
 * @Description： 移除一个数组中相同的元素，
 */
public class code7_removeduplicates {

    /**
     * 针对数组
     * @param nums
     * @return
     */
    public static int removeArrar(int [] nums){
        if(nums == null || nums.length == 0){
            return 0;
        }
        int length = nums.length;
        int left = 0;
        int right = 1;
        while (right < length){
            //如果不相等， right位置的值赋值left的位置的下一个值
            if(nums[left] != nums[right]){
                left++;
                nums[left] = nums[right];
            }
            right++;
        }
        return left+1;
    }

    /**
     * 针对链表
     * 和数组类似
     * @param head
     * @return
     */
    public static ListNode removeForListNode(ListNode head){
        ListNode slow,fast;
        slow = head;
        fast = head.next;
        while (fast != null){
            if(slow != fast){
                slow.next = fast;
                slow = slow.next;
            }
            fast = fast.next;
        }
        //断开与后面重复的连接
        slow.next = null;
        return head;
    }
}
